<!DOCTYPE html>
<html lang='en'>

<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
    <script src='./vue.js'></script>
</head>

<body>
    <div id='app'>
        <h1>
            我出生于：{{ birthYear }}, 年龄是：{{age}}
        </h1>
        <button @click="changeYear">修改出生年份</button>
        <button @click="changeAge">修改年龄</button>
    </div>
</body>
<script>
    const app = {
        data() {
            return {
                birthYear: 2000
            }
        },
        methods: {
            changeYear() {
                // 修改出生年份的时候，年龄会发生改变
                this.birthYear = 1998
            },
            changeAge() {
                // console.log(this);
                // 设置年龄的时候发现修改失败了，因为 age 是只读的
                this.age = 18
            }
        },
        // 计算属性的选项
        computed: {
            // age() {
            //     return new Date().getFullYear() - this.birthYear
            // }
            // 如果计算属性想要进行修改，那么可以将计算属性写成对象的形式，该
            // 对象有 get 和 set 两个方法，get 是用来获取计算结果的，set 是
            // 用来修改值的
            age: {
                get() {
                    return new Date().getFullYear() - this.birthYear
                },
                // set 方法中要有一个参数，该参数就是我们要设置的值
                set(value) {
                    // console.log(value);
                    // 使用当前年份减去年龄，得出出生年份，然后修改出生年份
                    this.birthYear = new Date().getFullYear() - value
                }
            }
        }
    }
    const vm = Vue.createApp(app).mount('#app')
</script>

</html>